package com.wteam.dragon.model.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wteam.dragon.model.pojo.bean.User;
import com.wteam.dragon.model.pojo.dto.UserDto;
import com.wteam.dragon.model.pojo.vo.QueryUserVo;
import com.wteam.dragon.system.basebean.bean.ResultMessage;
import org.springframework.web.multipart.MultipartFile;

import java.util.Set;

/**
 * @Author 陈晓辉
 * @Date 2020/4/2 9:47
 */
public interface UserService {
    /**
     * 分页获得用户列表
     * @param page 分页对象
     * @param userVo 查询用户对象
     * @return ResultMessage
     */
    ResultMessage pageUser(Page<UserDto> page, QueryUserVo userVo);

    /**
     *  新增用户
     * @param user 用户对象
     * @param rolesId 角色id集合
     * @param jobsId 岗位id集合
     * @return ResultMessage
     */
    ResultMessage addUser(User user, Set<Long> rolesId, Set<Long> jobsId);

    /**
     * 编辑用户
     * @param user 用户对象
     * @param rolesId 角色id集合
     * @param jobsId 岗位id集合
     * @return ResultMessage
     */
    ResultMessage editUser(User user, Set<Long> rolesId, Set<Long> jobsId);

    /**
     * 批量删除用户
     * @param ids 用户id集合
     * @return ResultMessage
     */
    ResultMessage delUser(Set<Long> ids);

    /**
     * 根据用户名查询用户
     * @param userName 账号名
     * @return ResultMessage
     */
    UserDto findByName(String userName);

    /**
     * 更改密码
     * @param oldPass 旧密码
     * @param newPass 新密码
     * @return ResultMessage
     */
    ResultMessage editPass(String oldPass , String newPass);

    /**
     * 修改头像
     * @param avatar 头像文件
     * @return ResultMessage
     */
    ResultMessage editAvatar(MultipartFile avatar);

    /**
     * 获得用户的等级
     * @return ResultMessage
     */
    ResultMessage getUserLevel();

    /**
     * 更改自己账号的信息
     * @param user 用户对象
     * @return ResultMessage
     */
    ResultMessage editMyUser(User user);
}
